home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / mach-o / stab.h < prev    next >
C/C++ Source or Header  |  1994-03-31  |  3KB  |  63 lines

  1. #ifndef _MACHO_STAB_H_
  2. #define _MACHO_STAB_H_
  3. /*
  4.  * Copyright (c) 1980 Regents of the University of California.
  5.  * All rights reserved.  The Berkeley software License Agreement
  6.  * specifies the terms and conditions for redistribution.
  7.  *
  8.  *    @(#)stab.h    5.1 (Berkeley) 5/30/85
  9.  */
  10.  
  11. /* IF YOU ADD DEFINITIONS, ADD THEM TO nm.c as well */
  12. /*
  13.  * This file gives definitions supplementing <nlist.h> for permanent symbol
  14.  * table entries of Mach-O files.  Modified from the 4.3BSD definitions.  The
  15.  * modifications from the original definitions were changing what the values of
  16.  * what was the n_other field (an unused field) which is now the n_sect field.
  17.  * These modifications are required to support symbols in an arbitrary number of
  18.  * sections not just the three sections (text, data and bss) in a 4.3BSD file.
  19.  * The values of the defined constants have NOT been changed.
  20.  *
  21.  * These must have one of the N_STAB bits on.  The n_value fields are subject
  22.  * to relocation according to the value of their n_sect field.  So for types
  23.  * that refer to things in sections the n_sect field must be filled in with the
  24.  * proper section ordinal.  For types that are not to have their n_value field 
  25.  * relocatated the n_sect field must be NO_SECT.
  26.  */
  27.  
  28. /*
  29.  * Symbolic debugger symbols.  The comments give the conventional use for
  30.  * 
  31.  *     .stabs "n_name", n_type, n_sect, n_desc, n_value
  32.  *
  33.  * where n_type is the defined constant and not listed in the comment.  Other
  34.  * fields not listed are zero. n_sect is the section ordinal the entry is
  35.  * refering to.
  36.  */
  37. #define    N_GSYM    0x20    /* global symbol: name,,NO_SECT,type,0 */
  38. #define    N_FNAME    0x22    /* procedure name (f77 kludge): name,,NO_SECT,0,0 */
  39. #define    N_FUN    0x24    /* procedure: name,,n_sect,linenumber,address */
  40. #define    N_STSYM    0x26    /* static symbol: name,,n_sect,type,address */
  41. #define    N_LCSYM    0x28    /* .lcomm symbol: name,,n_sect,type,address */
  42. #define    N_RSYM    0x40    /* register sym: name,,NO_SECT,type,register */
  43. #define    N_SLINE    0x44    /* src line: 0,,n_sect,linenumber,address */
  44. #define    N_SSYM    0x60    /* structure elt: name,,NO_SECT,type,struct_offset */
  45. #define    N_SO    0x64    /* source file name: name,,n_sect,0,address */
  46. #define    N_LSYM    0x80    /* local sym: name,,NO_SECT,type,offset */
  47. #define    N_SOL    0x84    /* #included file name: name,,n_sect,0,address */
  48. #define    N_PSYM    0xa0    /* parameter: name,,NO_SECT,type,offset */
  49. #define    N_ENTRY    0xa4    /* alternate entry: name,,n_sect,linenumber,address */
  50. #define    N_LBRAC    0xc0    /* left bracket: 0,,NO_SECT,nesting level,address */
  51. #define    N_RBRAC    0xe0    /* right bracket: 0,,NO_SECT,nesting level,address */
  52. #define    N_BCOMM    0xe2    /* begin common: name,,NO_SECT,0,0 */
  53. #define    N_ECOMM    0xe4    /* end common: name,,n_sect,0,0 */
  54. #define    N_ECOML    0xe8    /* end common (local name): 0,,n_sect,0,address */
  55. #define    N_LENG    0xfe    /* second stab entry with length information */
  56.  
  57. /*
  58.  * for the berkeley pascal compiler, pc(1):
  59.  */
  60. #define    N_PC    0x30    /* global pascal symbol: name,,NO_SECT,subtype,line */
  61.  
  62. #endif _MACHO_STAB_H_
  63.